home *** CD-ROM | disk | FTP | other *** search
- /*
- File: TextEncodingConverter.h
-
- Contains: Text Encoding Conversion Interfaces.
-
- Version: Technology: System 7.1 through System 8
- Release: Universal Interfaces 3.0d3 on Copland DR1
-
- Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
-
- Bugs?: If you find a problem with this file, send the file and version
- information (from above) and the problem description to:
-
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
- #ifndef __TEXTENCODINGCONVERTER__
- #define __TEXTENCODINGCONVERTER__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- #ifndef __MIXEDMODE__
- #include <MixedMode.h>
- #endif
- #ifndef __UNICODE__
- #include <Unicode.h>
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
-
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* converter object reference */
- typedef struct OpaqueEncodingConverterRef* EncodingConverterRef;
- /* character substitution */
- struct CharSubstitution {
- UInt32 originalChar;
- UInt32 replacementChar;
- };
- typedef struct CharSubstitution CharSubstitution;
-
- struct CharSubstitutionList {
- ItemCount numberOfSubstitutions;
- CharSubstitution list[1];
- };
- typedef struct CharSubstitutionList CharSubstitutionList;
-
- /* invalid character lists */
- struct InvalidCharRange {
- ByteOffset firstCharInRange;
- ByteOffset lastCharInRange;
- };
- typedef struct InvalidCharRange InvalidCharRange;
-
- struct InvalidCharRangeList {
- ItemCount numberOfRanges;
- InvalidCharRange list[1];
- };
- typedef struct InvalidCharRangeList InvalidCharRangeList;
-
- /* encoding conversion options */
- struct EncodingOptions {
- UInt16 sourceflags;
- UInt16 destflags;
- ItemCount maxLineLength;
- };
- typedef struct EncodingOptions EncodingOptions;
-
- #endif
- #if FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE
- /* return number of encodings types supported by user's configuraton of the encoding converter */
- extern pascal OSStatus CountAvailableTextEncodings(ItemCount *numberOfMappings)
- THREEWORDINLINE(0x303C, 0x021A, 0xABCE);
-
- /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
- extern pascal OSStatus GetAvailableTextEncodings(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings)
- THREEWORDINLINE(0x303C, 0x061B, 0xABCE);
-
- /* create a converter object with default conversion characteristics */
- extern pascal OSStatus NewEncodingConverter(EncodingConverterRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding)
- THREEWORDINLINE(0x303C, 0x061C, 0xABCE);
-
- /* disose and encoding converter object */
- extern pascal OSStatus DisposeEncodingConverter(EncodingConverterRef *newEncodingConverter)
- THREEWORDINLINE(0x303C, 0x021D, 0xABCE);
-
- /* manage substitution lists */
- extern pascal OSStatus SetConverterSubstitutionList(EncodingConverterRef *encodingConverter, CharSubstitutionList *charSubstitutionPtr)
- THREEWORDINLINE(0x303C, 0x041E, 0xABCE);
-
- extern pascal OSStatus GetConverterSubstitutionListCount(EncodingConverterRef *encodingConverter, ItemCount *count)
- THREEWORDINLINE(0x303C, 0x041F, 0xABCE);
-
- extern pascal OSStatus GetConverterSubstitutionList(EncodingConverterRef *encodingConverter, CharSubstitutionList *charSubstitutionPtr)
- THREEWORDINLINE(0x303C, 0x0220, 0xABCE);
-
- /* manage invalid character lists */
- extern pascal OSStatus SetConverterInvalidCharRangeList(EncodingConverterRef *encodingConverter, InvalidCharRangeList *invalidCharPtr)
- THREEWORDINLINE(0x303C, 0x0421, 0xABCE);
-
- extern pascal OSStatus GetConverterInvalidCharRangeListCount(EncodingConverterRef *encodingConverter, ItemCount *count)
- THREEWORDINLINE(0x303C, 0x0422, 0xABCE);
-
- extern pascal OSStatus GetConverterInvalidCharRangeList(EncodingConverterRef *encodingConverter, InvalidCharRangeList *invalidCharPtr)
- THREEWORDINLINE(0x303C, 0x0423, 0xABCE);
-
- extern pascal OSStatus ConvertTextEncoding(EncodingConverterRef *encodingConverter, Boolean clearContext, BytePtr *inputText, ByteCount *inputLength, BytePtr outputBuffer, ByteCount outputBufferSize, ByteCount *actualOutputLength)
- THREEWORDINLINE(0x303C, 0x1024, 0xABCE);
-
- extern pascal OSStatus ExamineTextEncoding(BytePtr *inputText, ByteCount *inputLength, TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, Boolean *validEncoding)
- THREEWORDINLINE(0x303C, 0x0A25, 0xABCE);
-
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __TEXTENCODINGCONVERTER__ */
-
-